草庐IT

Java String.replaceAll 正则表达式

全部标签

c# - 有没有办法将 ConcurrentDictionary.TryUpdate 与 lambda 表达式一起使用?

我有一个简单的场景,我想更新现有项目的值。只有AddOrUpdate方法提供了一个委托(delegate),我可以在其中更新旧值。但是,如果key不存在,我不想添加任何内容。还有TryUpdate方法没有重载,我可以获得旧值。有没有办法用当前的API来做到这一点?这是我要找的签名:boolTryUpdate(TKeykey,FuncupdateValueFactory) 最佳答案 您必须准备好循环并可能多次调用Func(与使用一个的GetOrAdd重载相同)。这意味着如果Func有副作用,从外部看它不会是原子的。确实,Func不应该

c# - c# 表达式中的闭包变量捕获问题

我有一个使用表达式树创建委托(delegate)的函数。在此表达式中,我使用从传递给函数的多个参数捕获的变量。实际的表达式树相当大,举个例子:DelegateGenerateFunction(Tcurrent,IListparents){varcurrentExpr=Expression.Parameter(typeof(T),"current");varparentsExpr=Expression.Parameter(parents.getType(),"parents");varparameters=newList();....returnExpression.Lambda(Exp

c# - 表达式树中的绑定(bind)参数

我想知道如何将参数绑定(bind)到表达式树中的值有点像Expression>e1=(x,y)=>x==y;然后我想绑定(bind)y,同时将其保留为单个表达式。一个明显的尝试是类似Expresion>e2=x=>e1(x,"FixedValueHere");但这会将我的表达式变成一个Invoke节点。有没有一种方法可以在我的第一个表达式中简单地绑定(bind)一个参数,同时获取第二个表达式的签名? 最佳答案 Expression>e1=(x,y)=>x==y;varswap=newExpressionSubstitute(e1.P

c# - 捕获 a-z 以外的字母的正则表达式

只允许字母的正常正则表达式是"[a-zA-Z]"但我来自瑞典,所以我必须将其更改为"[a-zåäöA-ZÅÄÖ]”。但是假设我不知道字母表中使用了哪些字母。有没有一种方法可以自动知道哪些字符在给定的语言环境/语言中是有效的,或者我应该只列出一个我(认为我)知道我不需要的字符的黑名单? 最佳答案 您可以使用\pL来匹配任何“字母”,这将支持所有语言的所有字母。您可以使用“命名block”将其缩小到特定语言。更多信息可以在CharacterClasses上找到MSDN上的文档。我的建议是将正则表达式(或至少是“字母”部分)放入本地化资源

c# - WPF - 是否可以否定数据绑定(bind)表达式的结果?

我知道这很好用:...但我真正想做的是否定类似于下面的绑定(bind)表达式的结果(伪代码)。这可能吗? 最佳答案 您可以使用IValueConverter执行此操作:publicclassNegatingConverter:IValueConverter{publicobjectConvert(objectvalue,...){return!((bool)value);}}并使用其中之一作为您的绑定(bind)转换器。 关于c#-WPF-是否可以否定数据绑定(bind)表达式的结果?,

c# - 简单的 Linq 表达式无法编译

有了这些基本定义boolMyFunc(stringinput){returnfalse;}varstrings=new[]{"aaa","123"};我想知道为什么这不会编译:varb=strings.Select(MyFunc);但这将:varc=strings.Select(elem=>MyFunc(elem));错误消息是“无法从用法中推断方法‘System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable,System.Func)’的类型参数。”Resharper错误提示说它混淆了Select(thisI

c# - 正则表达式在第一个空格后获取所有内容

获取字符串中第一个空格后的所有单词的语法是什么。例如,bobsnicehouse。所以结果应该是没有引号的“nicehouse”。([^\s]+)给我所有由;分隔的3个词,[\s\S]*$>未编译。 最佳答案 我真的在寻找尽可能短的代码。以下完成了工作。谢谢大家\s(.*) 关于c#-正则表达式在第一个空格后获取所有内容,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/159876

c# - 正则表达式匹配不被方括号包围的字符串

我必须解析一个文本,其中with是一个关键词,如果它没有被方括号括起来的话。我必须将关键字与匹配。此外,with的两边必须有单词边界。以下是一些with不是关键字的示例:[与][与][一些文本与一些文本][一些文字][带有一些文字]这里有一些例子,其中with是关键字与]与你好世界你好你好[世界],你好你好[世界]和你好[世界]有人帮忙吗?提前致谢。 最佳答案 您可以查找单词with并看到最靠近其左侧的括号不是左括号,并且最靠近其右侧的括号不是右括号:RegexregexObj=newRegex(@"(?环视表达式不会在换行符处停止

c# - Func<> 与委托(delegate)和 lambda 表达式之间的区别

这个问题在这里已经有了答案:delegatekeywordvs.lambdanotation(6个答案)关闭9年前。在深入了解C#的更多高级功能时,我遇到了一些代码,但我并不清楚它们之间的区别。这是关于这两行:FuncgiveLength=(text=>text.Length);和FuncgiveLength=delegate(stringtext){returntext.Length;};这可以用同样的方式使用:Console.WriteLine(giveLength("Arandomstring."));所以基本上..这两行有什么区别?这些行是否编译为相同的CIL?

c# - 正则表达式匹配带有 +(加号)的单词

我已经花了一些时间,但还是得解决。我需要能够匹配字符串中带有符号的单词(如C++)的正则表达式。我用过/\bword\b/,对于“通常”的词,它工作正常。但是一旦我尝试/\bC\+\+\b/它就不起作用了。它在某些情况下与加号一起工作是错误的。我需要一个正则表达式来检测输入字符串中是否包含C++单词。输入类似,"c++developer""usingc++language"等等附言。使用C#、.NetRegex.Match函数。感谢您的帮助! 最佳答案 +是一个特殊字符所以你需要转义它\bC\+\+(?!\w)请注意,我们不能使用\